package org.jeecg.modules.flow.vo;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;

import java.io.Serializable;
import java.util.Date;

@EqualsAndHashCode(callSuper = false)
@NoArgsConstructor
@AllArgsConstructor
@Builder(toBuilder = true)
@Data
@ApiModel(value = "历史实例对象", description = "历史实例对象")
public class HistoryProcessInstanceVo implements Serializable {

    /**
     * The process instance id
     */
    @ApiModelProperty(value = "流程实例ID")
    private String id;

    /**
     * The user provided unique reference to this process instance.
     */
    @ApiModelProperty(value = "流程实例关联业务key")
    private String businessKey;

    /**
     * The process definition reference.
     */
    @ApiModelProperty(value = "流程定义id")
    private String processDefinitionId;

    /**
     * The name of the process definition of the process instance.
     */
    @ApiModelProperty(value = "流程定义名称")
    private String processDefinitionName;

    /**
     * The key of the process definition of the process instance.
     */
    @ApiModelProperty(value = "流程定义key")
    private String processDefinitionKey;

    /**
     * The version of the process definition of the process instance.
     */
    @ApiModelProperty(value = "流程定义版本")
    private Integer processDefinitionVersion;

    /**
     * The deployment id of the process definition of the process instance.
     */
    @ApiModelProperty(value = "流程定义部署ID")
    private String deploymentId;

    /**
     * The time the process was started.
     */
    @ApiModelProperty(value = "流程启动时间")
    private Date startTime;

    /**
     * The time the process was ended.
     */
    @ApiModelProperty(value = "流程结束时间")
    private Date endTime;


    @ApiModelProperty(value = "流程持续时间")
    private Long durationInMillis;

    @ApiModelProperty(value = "流程结束节点定义ID")
    private String endActivityId;

    /**
     * The start activity.
     */
    @ApiModelProperty(value = "流程开始节点定义ID")
    private String startActivityId;

    /**
     * Obtains the reason for the process instance's deletion.
     */
    @ApiModelProperty(value = "流程删除意见")
    private String deleteReason;

    /**
     * The name for the process instance.
     */
    @ApiModelProperty(value = "流程实例名称")
    private String name;

    @ApiModelProperty(value = "流程实例启动人信息")
    private String startUserInfo;


}
